package com.demo.java.OD451_500.OD489;

import java.util.Scanner;
import java.util.*;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【箱子之字形摆放(B卷-100分)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146420758
 */
public class OdMain {
    public static void main(String[] args) {
        // 处理输入
        Scanner in = new Scanner(System.in);
        String input_str = in.nextLine();
        String[] split = input_str.split(" ");  // 将输入字符串分割成字符和行数部分
        String str = split[0];  // 获取字符部分
        int n = Integer.parseInt(split[1]);  // 获取行数部分

        // 将n行格子看作是n个数组
        List<List<Character>> lists = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            lists.add(new ArrayList<>());
        }

        int index = 0;  // 当前字符所属行的索引
        boolean flag = true;  // 控制字符是从上到下还是从下到上填充

        char[] chars = str.toCharArray();  // 将字符串转换为字符数组
        for (char c : chars) {
            if (index == -1) {
                index = 0;  // 超出范围时回到最上面
                flag = true;
            }
            if (index == n) {
                index = n - 1;  // 超出范围时回到最下面
                flag = false;
            }
            lists.get(index).add(c);  // 将当前字符放入对应行

            // 根据标志变量决定方向：从上到下还是从下到上
            if (flag) {
                index++;  // 上到下，索引加1
            } else {
                index--;  // 下到上，索引减1
            }
        }

        // 输出每一行的字符
        for (List<Character> list : lists) {
            for (Character c : list) {
                System.out.print(c);
            }
            System.out.println();  // 每行输出后换行
        }
    }
}